Skip to content

Add optional threadId to attempt history entries - #86

Open
alexshamrai wants to merge 1 commit into
ctrf-io:mainfrom
alexshamrai:feature/attempt-thread-id
Open

alexshamrai wants to merge 1 commit into
ctrf-io:mainfrom
alexshamrai:feature/attempt-thread-id

Conversation

@alexshamrai

@alexshamrai alexshamrai commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Adds optional threadId to attempt history entries, so each previous attempt can record the thread or worker that executed it (new section 11.12.1). Section 9.25 now says the Test-level threadId describes the final attempt represented by the test object.

Following the review in #74, the two fields share one contract, as Test and history attemptId do: an optional string at both levels, plus a SHOULD to qualify the value with the process or host when test cases run in more than one process or on more than one host. The change adds no rule for an attempt without threadId, and no serial-execution guarantee.

Adds threadId to the retry history of the standalone and inline comprehensive examples, a valid document whose previous and final attempts ran on different workers, and type cases rejecting non-string attempt values. Adds the changelog entries under Unreleased. Closes #74.

Version metadata is unchanged; the new fixtures use the current 0.2.0, leaving the 0.3.0 alignment to the release preparation in #75. The 0.3.0 stack also edits the 9.25 wording, the Test threadId schema description and the Unreleased changelog, and appends to the same normative test files, so updating the stack after this merges will need small conflict resolutions. I'm happy to help with them.

Validation: schema format/lint, 18 reference cases, 162 normative cases, standalone/complete inline examples and embedded-schema byte equality pass locally with sourcemeta/jsonschema v14.4.0. The existing suites and examples on main also pass against the new schema. The informative-test directory is absent on the baseline.

Attempt history entries can record the thread or worker that executed
them, using the same contract as the Test threadId. The Test threadId
now explicitly describes the final attempt, and producers that run test
cases in more than one process or on more than one host are asked to
qualify threadId values.

No omission rule and no serial-execution guarantee are added.
@Ma11hewThomas

Copy link
Copy Markdown
Collaborator

Looks great! Happy with these changes. You can include this in the open stack, or I can merge it myself as part of the stack later. Thanks for the work!

Great to see you contributing to CTRF again!

@alexshamrai
alexshamrai changed the base branch from main to prep/0.3.0-09-version-preparation October 27, 2026 20:35
@alexshamrai
alexshamrai force-pushed the feature/attempt-thread-id branch from edeb775 to 18b98da Compare October 27, 2026 20:38
@alexshamrai

Copy link
Copy Markdown
Contributor Author

Looks great! Happy with these changes. You can include this in the open stack, or I can merge it myself as part of the stack later. Thanks for the work!

Great to see you contributing to CTRF again!

Thanks! I've moved it onto the stack: it now targets prep/0.3.0-09-version-preparation, resolves the overlaps with the stack, and uses 0.3.0 in the new fixtures. I hope I got your point correct.
Thank you for your time and effort!

@Ma11hewThomas

Copy link
Copy Markdown
Collaborator

Really sorry, @alexshamrai!

This is my first time dealing with forked PRs and stacks, and it seems forked PRs can’t be included in a stack. Useful to know, I suppose!

I can sort it out on my side, but it would be easier if you could rebase onto the latest main again. I’ll merge this PR first, then update the rest of the stack.

@alexshamrai
alexshamrai changed the base branch from prep/0.3.0-09-version-preparation to main November 2, 2026 10:24
@alexshamrai
alexshamrai force-pushed the feature/attempt-thread-id branch from 18b98da to edeb775 Compare November 2, 2026 10:25
@alexshamrai

Copy link
Copy Markdown
Contributor Author

No problem at all! @Ma11hewThomas I've rebased it onto the latest main. Sorry for the long response, we have some issues with electricity because of the war in Ukraine.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: Add optional threadId to retryAttempts entries

2 participants